The present invention relates to dynamic relocation of storage and, more particularly, to dynamic relocation of storage in a main memory of a multi-level cache subsystem.
In certain computing systems and architectures, main memory is a primary resource that hypervisors manage on behalf of logical partitions, or guest operating systems. Similar to compute resources, main memory is limited in size and the main memory needs of a logical partition or operating system may change over time. To better utilize the shared memory resources of a computer system, advanced hypervisors and computer systems support dynamic (i.e., while a partition is active) allocation and de-allocation of storage in fixed size increments. The hypervisors are formed of low-level machine code that runs on processors to manage allocations of logical partitions in terms of dispatching logical processors associated with the partitions as well as the allocation of memory to the logical partitions.
While the means to move logical partitions between different physical compute resources exists, main memory cannot be relocated between physical partitions (e.g., nodes/drawers) for an active logical partition without first disrupting the partition. Typically, a disruption can mean either suspending the partition or the entire system while performing the relocation. Thus, since main memory associated with an active logical partition cannot be moved non-disruptively, optimal resource allocation over time is not obtained and in fact memory resource allocation may become suboptimal over time as compute and memory resource demands change.